package com.jmxcfc.blfsc.cfca.modle.request.body;

import lombok.Data;

import java.util.List;

/**
 * 功能描述
 * 签章信息(个人和企业章,都有可能使用到参数)
 * @author: pbs
 * @date: 2024年08月25日 15:51
 */
@Data
public class BaseStrategy {
    /**
     *serialNo
     */
    private String serialNo;

    /**
     * 签章人(不为空)
     */
    private String sealPerson;



    /**
     * 签章文本(不为空),优先级高,不为空时使用文本签章
     */
    private String sealText;


    /**
     *签章地点(可为空)
     */
    private String sealLocation;

    /**
     * 签章理由(可为空)
     */
    private String sealReason;

    /**
     *字体大小
     */
    private String fontSize = "12";
    /**
     *文本框宽度(默认 100)
     */
    private String width = "100";

    /**
     * 文本框的高度(默认 100)
     */
    private String height = "100";

    /**
     * 签章图片显示尺寸,单位毫米(非必填),默认为图片本身尺寸
     */
    private String displaySize;
    /**
     * 文本颜色, 颜色值 默认黑色
     * FF0000:红色
     * 000000:黑色
     */
    //private String fontColor = "FF0000";
    private String fontColor = "000000";

    /**
     *字体(默认宋体)
     */
    private String family = "宋体";

    /**
     *透明度,0-1.f,默认为1.0f,不透明
     */
    private String fillOpacity = "1.0";

    /**
     *是否显示,0-否,1-显示,默认为 1
     */
    private String visible = "1";

    /**
     *
     */
    private boolean isTimestampUsed = false;

    /**
     * Hash算法
     *SHA-1/SHA-256/SHA-384/SHA-512/SM3/MD5
     * 取值:SHA-256
     */
    private String hashAlg;

    /**
     * 签章类型,取值2
     * sealType=1:空白域签章
     * sealType=2:坐标
     * sealType=3:关键字签章
     */
    private String sealType;

    /**
     * sealType=1时,需要填写该字段
     */
    private String signatureFieldName;

    /**
     * 页码,默认第一页
     *sealType=2时,需要填写该字段
     */
    private String pageNo;

    /**
     * x 坐标
     * sealType=2时,需要填写该字段,默认0
     */
    private String lx = "0";

    /**
     * y 坐标
     * sealType=2时,需要填写该字段,默认0
     */
    private String ly = "0";

    /**
     *坐标值是否来源于客户端
     * 取值为1,不为空
     * 1:来源客户端(值为1时,以PDF文档的左上角为原点坐标体系)
     * 0:其他
     */
    private String isCenterCoordinate;

    /**
     * 业务码(可为空)
     */
    private String businessCode;

    /**
     *以图片底部为起点,向上占图片百分之多少的位置开始显示业务码,默认0.5
     *businessCode非空时传值
     */
    private String textRectHeightPercent = "0.5";

    /**
     *颜色值,默认黑色
     * businessCode非空时传值
     */
    private String businessColor = "FF0000";
    /**
     * 字体,默认为宋体,可以为空
     *  businessCode非空时传值
     */
    private String businessFamily = "宋体";

    /**
     *字体大小,默认12,可以为空
     * businessCode非空时传值
     */
    private String businessFontSize = "12";

    /**
     * 是否添加日期文本,取值0,
      0:不添加,1:添加
     */
    private String isAddDateText = "0";

    /**
     * isAddDateText=1时需要传
     */
    private String addDateText;

    /**
     * isAddDateText=1时需要传
     */
    private String dateFontColor = "FF0000";
    /**
     * isAddDateText=1时需要传
     */
    private String dateFontFamily = "宋体";
    /**
     * isAddDateText=1时需要传
     */
    private String dateFontSize = "12";
    /**
     * isAddDateText=1时需要传
     */
    private String dateRectHeight = "40";

    /**
     * 当前策略适用于第几个 pdf 文档,默认0:全部
     */
    private String pdfIndex = "0";

    /**
     * sealType=3关键字签章时需要填写
     */
    private String keyword;

    /**
     *  sealType=3关键字签章时需要填写
     * x 轴偏移,默认 0
     */
    private String offsetX = "0";
    /**
     *  sealType=3关键字签章时需要填写
     *  y 轴偏移,默认 0
     */
    private String offsetY = "0";


    /**
     *
     */
    //private String keywordPositionIndex = "0";
    //private byte[] sealImageData = null;
    //private List<String> signatureFieldNameList;


    /**
     * 坐标签章位置列表(可不传,直接使用pageNo,lx,ly)
     * signLocationList 不为空时,
     * 取signLocationList 中 的值进行签章,忽略pageNo,lx,ly 的值
     */
    private List<SignLocation> signLocationList;

    /**
     * 关键字列表
     */
    //private List<KeywordLocation> keywordLocationList;


    /**
     *印章编码
     */
    //private String sealCode;
    //private String sealPassword;
    //private String sealImageCode;

    //private String displaySize = "0";

}